//
// Created by andrew on 2021/12/30.
//

#include <iostream>
#include <list>
#include <algorithm>

using namespace std;

int main(int argc, char *argv[]) {

    list<int> list;
    // list赋值，可以使用另外一个List给该list赋值
    list.assign({1,2,3,4,5,6,7,8});
    // 返回最后一个元素的引用，元素还在列表中
    cout << "list size = " <<  list.size() << endl;
    cout << list.back() << "  " << list.size() << endl;
    // 列表迭代器跳转
    auto iter = list.begin();
    advance(iter, 6);  // advance是向前走几步的作用，迭代器不支持跳转的函数常这样使用
    cout << *iter << " " << endl;

    // list元素插入和排序
    list.insert(iter, 100);
    list.sort();
    for_each(begin(list), end(list), [](int data){
        cout << data << "  ";
    });
    cout << endl;

    // 清空列表
    list.clear();


    return 0;
}

